package deprecated;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Vector;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;



/**
 * @ProjectName:zqdk-mvcbase
 * @Description: 
 * @author: 周楠
 * @date 2017年3月6日 下午2:59:48
 * 
 * 通过泛型 设定处理异常类型 ，如不使用泛型设定 ，应重写  Class<E> getException() 方法
 * 
 */
public abstract class AbstractExceptionHandler <E extends Exception> implements ExceptionHandler<E> {

	protected Log log = LogFactory.getLog(AbstractExceptionHandler.class);
 	
	@SuppressWarnings("unchecked")
	@Override
	public Class<E> getException() {
		// TODO Auto-generated method stub
		
		Type genType= this.getClass() .getGenericSuperclass();
		
		Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
		
		Class<E>	clazz=(Class<E>)params[0];
		
	
		
		return clazz;
	}
	
	
}
